package com.onlineClass.config;

import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * @author helen
 * @since 2019/6/22
 */
@EnableTransactionManagement/*事务管理*/
@Configuration/**/
/*主类转移过来*/
@MapperScan("com.onlineClass.mapper")
public class MybatisPlusConfig {


	/**
	 * 乐观锁插件
	 * @return
	 */
	@Bean/*容器自动注册*/
	public OptimisticLockerInterceptor optimisticLockerInterceptor() {
		return new OptimisticLockerInterceptor();
	}

	/**
	 * 分页插件
	 */
	@Bean
	public PaginationInterceptor paginationInterceptor() {
		return new PaginationInterceptor();
	}

	/**
	 * 逻辑删除
	 * @return
	 */
	/*3.1.1.开始不需要这一步*/
	/*本项目用的是3.4.2版本*/
//	@Bean
//	public ISqlInjector sqlInjector() {
//		return new LogicSqlInjector();
//	}

	/**
	 * SQL执行效率插件
	 * 在 MybatisPlus3.2.0 后，性能分析插件被移除了，官方推荐使用第三方性能分析插件。
	 * 本项目用的是3.4.2版本
	 */
//	@Bean
//	@Profile({"dev","test"})// 设置 dev test 环境开启
//	public PerformanceInterceptor performanceInterceptor() {
//		PerformanceInterceptor p = new PerformanceInterceptor();
//		p.setMaxTime(5);//超出此处的设置则不执行sql，抛出异常信息，提示优化程序
//		p.setFormat(true);
//		return p;
//	}
}
